﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace DHISInteroperability.Resources
{
    [System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true, Namespace = "http://dhis2.org/schema/dxf/2.0")]
    [System.Xml.Serialization.XmlRootAttribute(Namespace = "http://dhis2.org/schema/dxf/2.0", IsNullable = false)]
    public partial class organisationUnit
    {

        private bool externalAccessField;

        private object coordinatesField;

        private string openingDateField;

        private bool activeField;

        private string displayNameField;

        private organisationUnit parentField;

        private access accessField;

        private user[] usersField;

        private organisationUnitGroup[] organisationUnitGroupsField;

        private organisationUnit[] childrenField;

        private dataSet[] dataSetsField;

        private object attributeValuesField;

        private object userGroupAccessesField;

        private string idField;

        private byte levelField;

        private string createdField;

        private string nameField;

        private string hrefField;

        private string lastUpdatedField;

        private string uuidField;

        private string shortNameField;

        
        public bool externalAccess
        {
            get
            {
                return this.externalAccessField;
            }
            set
            {
                this.externalAccessField = value;
            }
        }

        
        public object coordinates
        {
            get
            {
                return this.coordinatesField;
            }
            set
            {
                this.coordinatesField = value;
            }
        }

        
        public string openingDate
        {
            get
            {
                return this.openingDateField;
            }
            set
            {
                this.openingDateField = value;
            }
        }

        
        public bool active
        {
            get
            {
                return this.activeField;
            }
            set
            {
                this.activeField = value;
            }
        }

        
        public string displayName
        {
            get
            {
                return this.displayNameField;
            }
            set
            {
                this.displayNameField = value;
            }
        }

        
        public organisationUnit parent
        {
            get
            {
                return this.parentField;
            }
            set
            {
                this.parentField = value;
            }
        }

        
        public access access
        {
            get
            {
                return this.accessField;
            }
            set
            {
                this.accessField = value;
            }
        }

        
        [System.Xml.Serialization.XmlArrayItemAttribute("userItem", IsNullable = false)]
        public user[] users
        {
            get
            {
                return this.usersField;
            }
            set
            {
                this.usersField = value;
            }
        }

        
        public organisationUnitGroup[] organisationUnitGroups
        {
            get
            {
                return this.organisationUnitGroupsField;
            }
            set
            {
                this.organisationUnitGroupsField = value;
            }
        }

        
        [System.Xml.Serialization.XmlArrayItemAttribute("child", IsNullable = false)]
        public organisationUnit[] children
        {
            get
            {
                return this.childrenField;
            }
            set
            {
                this.childrenField = value;
            }
        }

        
        [System.Xml.Serialization.XmlArrayItemAttribute("dataSet", IsNullable = false)]
        public dataSet[] dataSets
        {
            get
            {
                return this.dataSetsField;
            }
            set
            {
                this.dataSetsField = value;
            }
        }

        
        public object attributeValues
        {
            get
            {
                return this.attributeValuesField;
            }
            set
            {
                this.attributeValuesField = value;
            }
        }

        
        public object userGroupAccesses
        {
            get
            {
                return this.userGroupAccessesField;
            }
            set
            {
                this.userGroupAccessesField = value;
            }
        }

        
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string id
        {
            get
            {
                return this.idField;
            }
            set
            {
                this.idField = value;
            }
        }

        
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public byte level
        {
            get
            {
                return this.levelField;
            }
            set
            {
                this.levelField = value;
            }
        }

        
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string created
        {
            get
            {
                return this.createdField;
            }
            set
            {
                this.createdField = value;
            }
        }

        
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string name
        {
            get
            {
                return this.nameField;
            }
            set
            {
                this.nameField = value;
            }
        }

        
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string href
        {
            get
            {
                return this.hrefField;
            }
            set
            {
                this.hrefField = value;
            }
        }

        
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string lastUpdated
        {
            get
            {
                return this.lastUpdatedField;
            }
            set
            {
                this.lastUpdatedField = value;
            }
        }

        
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string uuid
        {
            get
            {
                return this.uuidField;
            }
            set
            {
                this.uuidField = value;
            }
        }

        
        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string shortName
        {
            get
            {
                return this.shortNameField;
            }
            set
            {
                this.shortNameField = value;
            }
        }
    }

}